﻿Imports System
Imports System.CodeDom
Imports System.Text

Namespace System.Workflow.Activities.Rules
    Friend MustInherit Class RuleExpressionInternal
        ' Methods
        Protected Sub New()
        End Sub

        Friend MustOverride Sub AnalyzeUsage(ByVal expression As CodeExpression, ByVal analysis As RuleAnalysis, ByVal isRead As Boolean, ByVal isWritten As Boolean, ByVal qualifier As RulePathQualifier)

        Friend MustOverride Function Clone(ByVal expression As CodeExpression) As CodeExpression

        Friend MustOverride Sub Decompile(ByVal expression As CodeExpression, ByVal stringBuilder As StringBuilder, ByVal parentExpression As CodeExpression)

        Friend MustOverride Function Evaluate(ByVal expression As CodeExpression, ByVal execution As RuleExecution) As RuleExpressionResult

        Friend MustOverride Function Match(ByVal leftExpression As CodeExpression, ByVal rightExpression As CodeExpression) As Boolean

        Friend MustOverride Function Validate(ByVal expression As CodeExpression, ByVal validation As RuleValidation, ByVal isWritten As Boolean) As RuleExpressionInfo

    End Class
End Namespace

